A modem is a device that has traditionally allowed a computer system to transmit and receive data over a telephone line. Today, many modems can transmit voice and fax as well as data. Modems are currently implemented in a variety of ways. For example, a host based “controllerless” modem typically includes a codec on a peripheral board, but the modem controller code is executed by a host processor. A native signal processing modem typically implements a signal processing component on the host system itself to generate modem signals. Peripheral modems processor in conjunction with a modem microcontroller, and a strictly digital signal processor oriented approach. All of these approaches, however, provide for code that is either executed by the host processor, the microcontroller on the modem itself, or the digital signal processing code to implement the modem functionality. These approaches necessarily enhance the flexibility of modems, especially when this code is implemented in a flash ROM. This is because the modem can be reconfigured to adapt it to new implementations of communication protocols and to add other features that may be desirable in the modem.
While modem interfaces are standardized a number of different communications protocols for formatting data, to be transmitted over telephone lines exist. For example, standardized communication protocols include: Bell 103, CCITT V.21, Bell 212A, ITU V.22, ITU V.22bis, ITU V.29, ITU V.32, ITU V.32bis, ITU V.34, and ITU V.90. These and other protocols are well known to those of ordinary skill in the art. In many modems, flash ROMS have been utilized to enable the upgrading of communications protocols.
Telephony is the science of translating sound into electrical signals transmitting them through a medium and then converting back to sound. Computer telephony integration (CTI) refers to computer systems that enable a computer to act as a call center accepting incoming calls and routing them to the appropriate device or user. Currently, CTI systems have advanced such that most are capable of handling incoming and outgoing communications that include: phone calls (voice), faxes, and Internet messages. The advance in CTI has, in part, been aided by advance in software interfaces. One such interface is telephony application program interface (TAPI). TAPI is an application programmer interface (API) designed to connect a computer system running a windows-based program or operating system to telephone services. TAPI is well known to those of ordinary skill in the art. Another interface that is of particular interest to device driver developers is telephony service provider interface (TSPI). The TSPI is a software interface that sets between a Windows telephony dynamic link library (DLL) and a hardware specific device driver that is also known as a telephony service provider (TSP). The TSP provides an interface to the telephony hardware. The TSPI is well known to those of ordinary skill in the art.
In a typical local area network (LAN) a network firewall determines which LAN services are available from outside of the LAN and what outside services are available to those internally connected to the LAN. For the network firewall to be effective all outside traffic must pass through the firewall where it can be inspected. When performing as designed, the firewall permits only authorized traffic to pass and blocks dubious traffic. Unfortunately, the firewall cannot offer any protection once an attacker has gotten through or around the firewall. For example, if unrestricted dialout is permitted from inside the protected network internal users can make a direct serial line Internet protocols (SLIP) or point-to-point protocol (PPP) connection to an Internet service provider (ISP). These types of connections bypass the security provided by even the most carefully constructed firewall and create a significant opportunity for backdoor attacks.